#include "Martiale.h"

using namespace std;

/**
 * Constructeur qui initialise tous les champs.
 *
 * @param nom nom de l'arme.
 * @param masse poids de l'arme (en systaxe LaTeX).
 * @param taille taille de l'arme (P, M, G, ...).
 * @param type type de dégâts causé par l'arme (P, T, C).
 * @param vitesse facteur de vitesse de l'arme.
 * @param freq fréquence d'attaque maximale.
 * @param portee portée, applicable pour les armes de jet.
 * @param pm dégâts sur cibles petites et moyennes.
 * @param grand dégâts sur cibles ayant une taille au moins grande.
 * @param aff booléen décidant si la compétence suivante doit être
 * affichée automatiquement (munitions, 1/2 mains).
 * @param large numéro du groupe large.
 * @param restreint numéro du groupe restreint.
 */
Martiale::Martiale(const std::string& nom, const std::string masse,
		   const char& taille, const std::string& type,
		   const unsigned int& vitesse, const std::string& freq,
		   const std::string& portee, const std::string& pm,
		   const std::string& grand, const bool& aff,
		   const unsigned int& large, const unsigned int& restreint)
  : Nom_arme( nom ), poids( masse ), taille_arme( taille ), type_degats( type ),
    Vitesse( vitesse ), Frequence( freq ), Portee( portee ), degats_PM( pm ),
    degats_G( grand ), afficher_suite( aff ), groupe_large( large ),
    groupe_restreint( restreint )
{}

/**
 * Destructeur, ne fait rine de spécial.
 */
Martiale::~Martiale()
{}

ostream& operator<<(ostream& os, const Martiale& mart)
{
  os << mart . Nom_arme << " & "
     << mart . poids << " & "
     << mart . taille_arme << " & "
     << mart . type_degats << " & "
     << mart . Vitesse << " & "
     << mart . Frequence << " & "
     << mart . Portee << " & "
     << mart . degats_PM << " & "
     << mart . degats_G << "\\\\";

  return os;
}

